/*
 * @lc app=leetcode.cn id=11 lang=golang
 *
 * [11] 盛最多水的容器
 */

// 2. 双指针 左右夹逼 往中间收敛
// 时间 O(n)
// 空间 O(1)
// @lc code=start
func maxArea(height []int) int {
	maxCapability := 0
	left, right := 0, len(height)-1

	for left < right {
		if height[left] > height[right] {
			maxCapability = max(maxCapability, (right-left)*height[right])
			right--
		} else {
			maxCapability = max(maxCapability, (right-left)*height[left])
			left++
		}
	}

	return maxCapability
}

func max(x, y int) int {
	if x > y {
		return x
	}
	return y
}

func min(x, y int) int {
	if x < y {
		return x
	}
	return y
}

// @lc code=end

// 1. 暴力 超时
// 时间 O(n^2)
// 空间 O(1)
// @lc code=start
func maxArea(height []int) int {
	maxCapability := 0
	for i := 0; i < len(height)-1; i++ {
		for j := i + 1; j < len(height); j++ {
			maxCapability = max(maxCapability, (j-i)*min(height[i], height[j]))
		}
	}
	return maxCapability
}

func max(x, y int) int {
	if x > y {
		return x
	}
	return y
}

func min(x, y int) int {
	if x < y {
		return x
	}
	return y
}

// @lc code=end

